package com.lago.homework2.exercise1;


/*
定义一个长度为【16】【16】的整型二维数组并输入或指定所有位置的元素值，分别实现二维数组的所有行和列的累加和并打印。
再分别实现二维数组左上角到右下角和右上角到左下角的累加和打印
 */
public class PrintArray {

    /*定义一个长度为[16][16]的整型二维数组*/
    private int[][] arr = new int[16][16];
  /*  private int cols;
    private int rows;*/

    /*查看输入指定元素后的二维数据*/
    public void show() {
      for (int i = 0; i < arr.length; i++) {
          for (int j = 0; j < arr[i].length; j++) {
              System.out.print(arr[i][j] + " | ");
          }
          System.out.println();
      }
        System.out.println("--------------------");
    }
    //赋值二维数组,定义一个整数，作为设定值
    public void setArray(int cols, int rows, int value){
      arr[cols][rows] = value;
    }

    /*
    2.实现所有行列累加求和
     */
    //所有行中所有行元素的累加和并打印
    public void colsSum(){
        for(int i = 0; i < arr.length; i++){
            int sum1 = 0;
            for(int j = 0; j < arr[i].length; j++){
                sum1 += arr[i][j];
            }
            System.out.println("第" + (i+1) + "行所有元素的和为" + sum1);
        }
        System.out.println("--------------------");
    }
    //所有行中所有列元素的累加和并打印
    public void rowsSum(){
        for (int j = 0; j < arr.length; j++){
            int sum2 = 0;
            for (int i=0; i < arr[j].length; i++) {
                sum2 += arr[i][j];
            }
            System.out.println("第" + (j+1) + "列所有元素的和为" + sum2);
        }
        System.out.println("--------------------");
    }

    //左上角到右下角元素的和
    public void toRightSum(){
        int sum3  = 0;
        for (int i = 0; i < arr.length; i++){
            for (int j = 0; j < arr[i].length; j++){
                /*if(i>=j){
                    sum3 += arr[i][i] + arr[i][arr.length-i-1];
                }*/
            }sum3 += arr[i][i];

        }System.out.println("左上角到右下角所有元素的累加和是："+ sum3);
  /*              if (i < j){
                    sum3 += arr[i][i+1];
                }
                else if (i > j){
                    sum3 += arr[i][i-1];
                }
                else {
                    sum3 += arr [i][i];
                }
            }
        }*/
        System.out.println("--------------------");
    }

    //右上角到左下角元素和
    public void toLeftSum(){
        int sum4  = 0;
        for (int i = 0; i < arr.length; i++){
            for (int j = 0; j < arr[i].length; j++){

            }sum4 +=  arr[arr.length-i-1][i];

        }System.out.println("右上角到左下角所有元素的累加和是："+ sum4);

        System.out.println("--------------------");
    }
}
